package chapter04.Example04.Demo3;

/**
 * 抽象类
 * 1.抽象类可以直接继承抽象类(抽象类无法实例化对象)
 * 2.类继承抽象类
 */
abstract class Flower{
    String color;//颜色
    int petal_number;
    String florescence;//花期
    abstract void setColor(String color);// 抽象
    abstract void setPetalNumber(int num);
    void setFlorescence(String florescence){
        this.florescence = florescence;//不是抽象方法 可以具体实现
    }
}
abstract class Poney extends Flower{}//在这里牡丹是抽象类 无法实例化
class PlumBlossom extends Flower{// 梅花 继承抽象的花朵类
      void setColor(String color){
          if (color.equals("")){
              this.color = "粉白色";
          }else {
              this.color = color;
          }
      }
      void setPetalNumber(int num){
          this.petal_number = num;
      }
}

// 1.类继承抽象类 必须实现所有抽象方法


// 2.抽象类可以继承抽象类

public class Demo3 {
    public static void main(String[] args){
        //Poney P = new Poney();错误 抽象类
        PlumBlossom plumBlossom = new PlumBlossom();
        plumBlossom.setPetalNumber(5);//梅花有5个花瓣
    }
}